package DoublePointer;

import java.util.Scanner;

public class validPalindrome {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s = in.next();
        System.out.println(new validPalindrome().validPalindrome(s));
    }

//    public boolean validPalindrome(String s) {
//        int length = s.length();
//        int l = 0;
//        int r = length - 1;
//        boolean flag = false;
//        while (l <= r) {
//            if (s.charAt(l) != s.charAt(r)) {
//                if (!flag) {
//                    if (s.charAt(l + 1) == s.charAt(r) && r >= l+1) {
//                        l++;
//                        flag = true;
//                    } else if (s.charAt(l) == s.charAt(r - 1) && r >= l+1) {
//                        r--;
//                        flag = true;
//                    } else {
//                        return false;
//                    }
//                } else {
//                    return false;
//                }
//            } else {
//                l++;
//                r--;
//            }
//        }
//        return true;
//    }

    public boolean validPalindrome(String s) {
        for (int i = 0, j = s.length() - 1; i < j; i++, j--) {
            if(s.charAt(i) != s.charAt(j)) {
                return isPalindrome(s, i + 1, j) || isPalindrome(s, i, j - 1);
            }
        }
        return true;
    }

    private boolean isPalindrome(String s, int i, int j) {
        while (i <= j) {
            if (s.charAt(i++) != s.charAt(j--)) return false;
        }
        return true;
    }
}
